<?php 
/**
 *  Por Federico Pisarello - SisDev Software (c) 2012 - Buenos Aires, Argentina.
 * 	fpisarello@sisdevsoft.com
 */

require("includes/funciones.inc.php");

session_start();
if(!isset($_SESSION['nombreUsuario']))
	exit();

function searchABMProveedores()
{
	require("includes/constants.php");
	require("includes/datatables_db/Datatables.php");
	
	$datatables = new Datatables();
	
	$datatables
			->select('idProveedor, razonSocial, direccion, localidad, provincia, telefono, tipos_iva.descripcion descTipoIva, cuit, segmento.descripcion descSegmento')
			->from('proveedores')
			->join('tipos_iva','proveedores.idTipoIva = tipos_iva.idTipoIva', 'inner')
			->join('segmento','proveedores.idSegmento = segmento.idSegmento', 'inner')
			->where("proveedores.estado <> '".$stateErase."'");

	return $datatables->generate();	
}

function addOrEdit()
{
	require("includes/constants.php");
	$mcrypt = new MCrypt();

	$DB = NewADOConnection('mysqlt');
	$DB->Connect();
	$DB->Execute("SET NAMES utf8;");
	//$DB->debug=true;
	
	$DB->StartTrans(); // start transaction
	
	if(!isset($_REQUEST["idProveedor"])){
			
		$strSQL = "INSERT INTO proveedores ( ";
		$strSQL .= "	tipo, ";
		$strSQL .= "	razonSocial, ";
		$strSQL .= "	idTipoIva, ";
		$strSQL .= "	cuit, ";
		$strSQL .= "	direccion, ";
		$strSQL .= "	idPais, ";
		$strSQL .= "	localidad, ";
		$strSQL .= "	provincia, ";
		$strSQL .= "	codPostal, ";
		$strSQL .= "	telefono, ";
		$strSQL .= "	telefonoAlternativo, ";
		$strSQL .= "	nombreContacto, ";
		$strSQL .= "	eMail, ";
		$strSQL .= "	condicionPago, ";
		$strSQL .= "	idSegmento, ";
		$strSQL .= "	estado ";
		$strSQL .= "	) VALUES ( ";
		$strSQL .= "	'".$_REQUEST["tipo"]."', ";
		$strSQL .= "	'".mb_strtoupper($_REQUEST["razonSocial"], "UTF-8")."', ";
		$strSQL .= "	'".$_REQUEST["cmbIVA"]."', ";
		$strSQL .= "	'".mb_strtoupper($_REQUEST["cuit"], "UTF-8")."', ";
		$strSQL .= "	'".mb_strtoupper($_REQUEST["direccion"], "UTF-8")."', ";
		$strSQL .= "	'".$_REQUEST["cmbPais"]."', ";
		$strSQL .= "	'".mb_strtoupper($_REQUEST["localidad"], "UTF-8")."', ";
		$strSQL .= "	'".mb_strtoupper($_REQUEST["provincia"], "UTF-8")."', ";
		$strSQL .= "	'".mb_strtoupper($_REQUEST["codPostal"], "UTF-8")."', ";
		$strSQL .= "	'".mb_strtoupper($_REQUEST["telefono"], "UTF-8")."', ";
		$strSQL .= "	'".mb_strtoupper($_REQUEST["telefonoAlternativo"], "UTF-8")."', ";
		$strSQL .= "	'".mb_strtoupper($_REQUEST["nombreContacto"], "UTF-8")."', ";
		$strSQL .= "	'".$_REQUEST["eMail"]."', ";
		$strSQL .= "	'".$_REQUEST["condPago"]."', ";
		$strSQL .= "	'".$_REQUEST["cmbSegmento"]."', ";
		$strSQL .= "	'".$stateAdd."' ";
		$strSQL .= "	)";
		
		$DB->Execute($strSQL);
	}
	else{
		$strSQL = "UPDATE proveedores SET ";
		$strSQL .= "	tipo = '".$_REQUEST["tipo"]."', ";
		$strSQL .= "	razonSocial = '".mb_strtoupper($_REQUEST["razonSocial"], "UTF-8")."', ";
		$strSQL .= "	cuit = '".mb_strtoupper($_REQUEST["cuit"], "UTF-8")."', ";
		$strSQL .= "	direccion = '".mb_strtoupper($_REQUEST["direccion"], "UTF-8")."', ";
		$strSQL .= "	idPais = '".$_REQUEST["cmbPais"]."', ";
		$strSQL .= "	localidad = '".mb_strtoupper($_REQUEST["localidad"], "UTF-8")."', ";
		$strSQL .= "	provincia = '".mb_strtoupper($_REQUEST["provincia"], "UTF-8")."', ";
		$strSQL .= "	codPostal = '".mb_strtoupper($_REQUEST["codPostal"], "UTF-8")."', ";
		$strSQL .= "	telefono = '".mb_strtoupper($_REQUEST["telefono"], "UTF-8")."', ";
		$strSQL .= "	telefonoAlternativo = '".mb_strtoupper($_REQUEST["telefonoAlternativo"], "UTF-8")."', ";
		$strSQL .= "	nombreContacto = '".mb_strtoupper($_REQUEST["nombreContacto"], "UTF-8")."', ";
		$strSQL .= "	eMail = '".$_REQUEST["eMail"]."', ";
		$strSQL .= "	condicionPago = '".$_REQUEST["condPago"]."', ";
		$strSQL .= "	idSegmento = '".$_REQUEST["cmbSegmento"]."', ";
		$strSQL .= "	estado = '".$stateModify."'";
		$strSQL .= " WHERE idProveedor = ". $_REQUEST["idProveedor"];
		
		$DB->Execute($strSQL);
	}
	
	if (!$DB->CompleteTrans())
	{
		$arrJSON->status = "ERROR";
		$arrJSON->msg = "Error al Grabar el Proveedor";
	}
	else
	{
		$arrJSON->status = "OK";
		$arrJSON->msg = "El Proveedor fue Guardado con Exito";
	}	
	return json_encode($arrJSON);
}

function del()
{
	require("includes/constants.php");
	
	$DB = NewADOConnection('mysqlt');
	$DB->Connect();
	$DB->Execute("SET NAMES utf8;");
	//$DB->debug=true;
	
	$DB->StartTrans(); // start transaction
	$DB->Execute("UPDATE proveedores SET estado = '$stateErase' WHERE idProveedor = " . $_REQUEST["idProveedor"]); // execute query

	if (!$DB->CompleteTrans())
	{
		$arrJSON->status = "ERROR";
		$arrJSON->msg = "Error al Eliminar el Proveedor";
	}
	else
	{
		$arrJSON->status = "OK";
		$arrJSON->msg = "El Proveedor se Elimino Correctamente";
	}	
	return json_encode($arrJSON);
}

function editProveedor()
{
	require("includes/constants.php");
	
	$mcrypt = new MCrypt();
	
	$DB = NewADOConnection('mysqlt');
	$DB->Connect();
	$DB->Execute("SET NAMES utf8;");
	//$DB->debug=true;
	
	$rsProveedores = $DB->Execute("SELECT * FROM proveedores WHERE estado <> '$stateErase' AND idProveedor = " . $_REQUEST["idProveedor"]); // execute query
						
	if(!$rsProveedores->EOF){
		$joProveedor->data['tipo'] = $rsProveedores->fields("tipo");
		$joProveedor->data['razonSocial'] = $rsProveedores->fields("razonSocial");
		$joProveedor->data['idTipoIva'] = $rsProveedores->fields("idTipoIva");
		$joProveedor->data['cuit'] = $rsProveedores->fields("cuit");
		$joProveedor->data['direccion'] = $rsProveedores->fields("direccion");
		$joProveedor->data['idPais'] = $rsProveedores->fields("idPais");
		$joProveedor->data['localidad'] = $rsProveedores->fields("localidad");
		$joProveedor->data['provincia'] = $rsProveedores->fields("provincia");
		$joProveedor->data['codPostal'] = $rsProveedores->fields("codPostal");
		$joProveedor->data['telefono'] = $rsProveedores->fields("telefono");
		$joProveedor->data['telefonoAlternativo'] = $rsProveedores->fields("telefonoAlternativo");
		$joProveedor->data['nombreContacto'] = $rsProveedores->fields("nombreContacto");
		$joProveedor->data['condicionPago'] = $rsProveedores->fields("condicionPago");
		$joProveedor->data['eMail'] = $rsProveedores->fields("eMail");
		$joProveedor->data['idSegmento'] = $rsProveedores->fields("idSegmento");
		
		return json_encode($joProveedor->data);
	}
	else
		return json_encode(array());
}

function getTiposIva()
{
	$DB = NewADOConnection('mysqlt');
	$DB->Connect();
	$DB->Execute("SET NAMES utf8;");
	//$DB->debug=true;
	
	$rsTiposIva = $DB->Execute("SELECT * FROM tipos_iva");
	
	$i=0;
	while(!$rsTiposIva->EOF){
		$arrTiposIva->data[$i]['idTipoIva'] = $rsTiposIva->fields('idTipoIva');
		$arrTiposIva->data[$i++]['descripcion'] = $rsTiposIva->fields('descripcion');
		$rsTiposIva->MoveNext();
	}
	
	return json_encode($arrTiposIva->data);
}

function getSegmentos()
{
	$DB = NewADOConnection('mysqlt');
	$DB->Connect();
	$DB->Execute("SET NAMES utf8;");
	//$DB->debug=true;

	$rsSegmento = $DB->Execute("SELECT * FROM segmento");

	$i=0;
	while(!$rsSegmento->EOF){
		$arrSegmento->data[$i]['idSegmento'] = $rsSegmento->fields('idSegmento');
		$arrSegmento->data[$i++]['descripcion'] = $rsSegmento->fields('descripcion');
		$rsSegmento->MoveNext();
	}

	return json_encode($arrSegmento->data);
}

function getPaises()
{
	$DB = NewADOConnection('mysqlt');
	$DB->Connect();
	$DB->Execute("SET NAMES utf8;");
	//$DB->debug=true;

	$rsPaises = $DB->Execute("SELECT * FROM paises");

	$i=0;
	while(!$rsPaises->EOF){
		$arrPaises->data[$i]['idPais'] = $rsPaises->fields('idPais');
		$arrPaises->data[$i++]['descripcion'] = $rsPaises->fields('descripcion');
		$rsPaises->MoveNext();
	}

	return json_encode($arrPaises->data);
}

switch($_REQUEST['accion'])
{
	case "EDIT":
		echo editProveedor();
		break;
	case "DELETE":
		echo del();
		break;
	case "search":
		echo searchABMProveedores();
		break;
	case "addOrEdit":
		echo addOrEdit();
		break;
	case "getTiposIva":
		echo getTiposIva();
		break;		
	case "getSegmentos":
		echo getSegmentos();
		break;
	case "getPaises":
		echo getPaises();
		break;
}
?>
